Argentina
Mapa del sitio  | Home | Worldwide
Microsoft
Buscar en Microsoft.com:
Ayuda y Soporte Técnico  
| Seleccione un producto | Búsqueda Avanzada | Grupos de noticias | Contáctenos

ACC2000: Dos ejemplos que utilizan el ActiveX de Winsock controlan

AVISO: Gracias por utilizar el servicio de Traducción Automática. Este artículo ha sido traducido por un sistema informático sin ayuda humana (Machine Translation). Microsoft ofrece estos artículos a los usuarios que no comprendan el inglés, exclusivamente, con el fin de que puedan entenderlos más fácilmente. Microsoft no se hace responsable de la calidad lingüística de las traducciones ni de la calidad técnica de los contenidos de los artículos así como tampoco de cualesquiera problemas, directos o indirectos, que pudieran surgir como consecuencia de su utilización por los lectores.
Id. de artículo : 209905
Última revisión : lunes, 28 de junio de 2004
Versión : 2.0
Avanzado: Exige codificar experto, interoperabilidad y conocimientos de multiusuario.

Este artículo se aplica únicamente a las bases de datos de Microsoft Access (.mdb).

En esta página

Resumen

Este Este artículo proporciona dos ejemplos de cómo utilizar el control ActiveX de Winsock instalado con el Microsoft Office 2000 Developer Edition Tools.

Volver al principio

Más información

El control Winsock le permite conectarse a unos datos remotos de equipo y cambio entre equipos de cliente y servidor. El control Winsock admite dos protocolos Protocolo de control de transporte y Protocolo de datagramas de usuario.

TCP es un protocolo connection-based. Una analogía común utilizada para describir TCP es aquél de un teléfono. En esta analogía, los llamadores deben establecer una conexión en ambos extremos de la línea telefónica antes que puedan intercambiar información. Un equipo que utiliza TCP debe recibir confirmación del equipo receptor que ha sido una conexión establecido antes de que los dos equipos pueden transferir datos.

UDP es un protocolo sin conexión. Una analogía común utilizada para describir UDP es aquél de un radio. En esta analogía, un emisor de radio difunde su señal sin saberse for sure si cualquiera está estando al escucha. Un equipo que utiliza UDP envía datos y no requiere una conexión con el equipo del extremo receptor de la transmisión.

Volver al principio

Ejemplo 1 que utiliza el control ActiveX de Winsock con TCP

Este ejemplo utiliza el mismo equipo para enviar y recibir datos. Crea un formulario con tres controles Winsock. Uno de los controles emula el entorno de cliente de equipo para enviar una solicitud de conexión a un servidor. Los otros dos controles emulan el entorno en un equipo servidor, un control escucha una solicitud de conexión: otro acepta la solicitud cuando procede.
1. Cree una base de datos nueva llamada WinsockDemo.mdb en blanco.
2. Cree el formulario nuevo siguiente (no basado en ninguna tabla o consulta) en vista Diseño:
   Form: TCPForm
   ---------------------------------
   Caption: TCP Form

   Command button:
      Name: cmdListen
      Caption: Listen
   Command button:
      Name: cmdConnect
      Caption: Establish Connection
   Command button:
      Name: cmdSend
      Caption: Send Data
   Command button:
      Name: cmdRespond
      Caption: Respond
   Command button:
      Name: cmdClose
      Caption: Close Connection
   Text box:
      Name: Text1
      Label Caption: Data Received:
   Winsock control:
      Name: axWinsockListen
   Winsock control:
      Name: axWinsockClient
   Winsock control:
      Name: axWinsockServer
					
3. En el menú Ver, haga clic en Código.
4. Escriba la línea siguiente en la sección Declarations del módulo de clase del formulario:
Dim wsListen, wsClient, wsServer As Winsock
					
5. Escriba los siguientes procedimientos

Para ilustrar cómo funciona el control Winsock entre cliente y servidor de forma óptima, los procedimientos se muestran en el orden en el que tienen lugar.
Private Sub Form_Load()
   ' Set one server Winsock control and the client Winsock control
   ' when the form loads.
   Set wsListen = Me!axWinsockListen.Object
   Set wsClient = Me!axWinsockClient.Object

   ' Set the protocol for each control.
   wsListen.Protocol = sckTCPProtocol
   wsClient.Protocol = sckTCPProtocol

   ' Set the remote host on the client Winsock control. Because
   ' client and server are the same computer in this example, set
   ' RemoteHost equal to LocalIP.
   wsClient.RemoteHost = wsListen.LocalIP

   ' Set a local and a remote port for the client.
   wsClient.RemotePort = 100
   wsClient.LocalPort = 99

   ' Set a local and a remote port for the server. Note that the
   ' server RemotePort is the client LocalPort and vice versa.
   wsListen.LocalPort = 100
   wsListen.RemotePort = 99
End Sub

Private Sub cmdListen_Click()
   ' Start the server listening for a connection request.
   wsListen.Listen
   Msgbox "Server is waiting for a connection request."
End Sub

Private Sub cmdConnect_Click()
   ' The client requests a connection with the server.
   Msgbox "Client requested connection with server."
   wsClient.Connect
End Sub

Private Sub axWinsockListen_ConnectionRequest(ByVal requestID As _
   Long)
   ' When the server receives a connection request, set the second
   ' Winsock on the server to accept the request.
   Set wsServer = Me!axWinsockServer.Object
   wsServer.Protocol = sckTCPProtocol

   ' Accept the connection request.
   wsServer.Accept requestID
   Msgbox "Server accepted client connection request."
End Sub

Private Sub axWinsockClient_Connect()
   ' When the server accepts the connection request, the Connect
   ' event fires on the client. Display a message indicating success.
   MsgBox "Connection Successful!"
End Sub

Private Sub cmdSend_Click()
   ' After a connection is established, use a command button to send
   ' data from client to server.
   wsClient.SendData "Hello"
End Sub

Private Sub axWinsockServer_DataArrival(ByVal bytesTotal As Long)
   Dim strClientMsg As String

   ' The DataArrival event fires on the server when the client sends
   ' information. Get the data and display it in a text box.
   wsServer.GetData strClientMsg, vbString
   Me!Text1.Value = strClientMsg
End Sub

Private Sub cmdRespond_Click()
   ' Send a message from the server to the client.
   wsServer.SendData "Thanks for the message!"
End Sub

Private Sub axWinsockClient_DataArrival(ByVal bytesTotal As Long)
   Dim strServerMsg As String

   ' The DataArrival event fires on the client when the server sends
   ' information. Get the data and display it in a text box.
   wsClient.GetData strServerMsg
   Me!Text1.Value = strServerMsg
End Sub

Private Sub cmdClose_Click()
   ' Close the server connections
   wsServer.Close
   wsListen.Close
   Msgbox "Server connections closed."
End Sub

Private Sub axWinsockClient_Close()
   ' Close event on client fires after server closes connection.
   ' Close the client connection and display a message box.
   wsClient.Close
   MsgBox "Client connections closed. Good-Bye!"
End Sub
					
6. Guarde y cierre TCPForm.
7. Abra TCPForm en vista Formulario y realice las tareas siguientes:
a. Haga clic en el botón Escuchar para iniciar el servidor al escuchar una solicitud de conexión.

Aparece para que lo noto que el mensaje empaqueta aquél indique que el servidor se espera a una conexión.
b. Haga clic en el botón Establish Connection.

Tenga el cuadro de mensaje desde el cliente que comprueba que la conexión fue correcta y el cuadro de mensaje del servidor que comprueba que se aceptó la solicitud en cuenta.
c. Haga clic en el botón Send Data y observe que el mensaje de cliente "Hello" aparece en el cuadro de texto del formulario.
d. Haga clic en el botón Responder y tenga en cuenta que el mensaje de servidor "Gracias para el mensaje" se muestra en el cuadro de texto.
e. Haga clic en el botón Close Connection y tenga los cuadros de mensaje de cliente y servidor que indica que se han cerrado las conexiones en cuenta.

Volver al principio

Ejemplo 2 que utiliza el control ActiveX de Winsock con UDP

Este ejemplo utiliza el mismo equipo para enviar y recibir datos. Crea un formulario con dos controles Winsock, uno de los controles emula el equipo de cliente: el otro control emula el servidor.
1. Cree una base de datos nueva llamada WinsockDemo.mdb en blanco o utilice la base de datos que creó en el ejemplo anterior.
2. Cree el formulario nuevo siguiente (no basado en ninguna tabla o consulta) en vista Diseño:
   Form: UDPForm
   --------------------------------
   Caption: UDP Form

   Command button:
     Name: cmdSend
        Caption: Send Data
     Text box:
        Name: Text1
        Label Caption: Data Received:
     Winsock control:
        Name: axWinsockClient
     Winsock control:
        Name: axWinsockServer
					
3. En el menú Ver, haga clic en Código.
4. Escriba la línea siguiente en la sección Declarations del módulo de clase del formulario:
Dim wsClient, wsServer As Winsock
					
5. Escriba los siguientes procedimientos

Para ilustrar cómo funciona el control Winsock entre cliente y servidor de forma óptima, los procedimientos se muestran en el orden en el que tienen lugar.
Private Sub Form_Load()
   ' Set the control objects when the form loads.
   Set wsClient = Me!axWinsockClient.Object
   Set wsServer = Me!axWinsockServer.Object

   ' Set the protocol for client and server.
   wsClient.Protocol = sckUDPProtocol
   wsServer.Protocol = sckUDPProtocol

   ' Set the host and ports for client and server. Because client
   ' and server are the same computer in this example, set RemoteHost
   ' equal to LocalIP.
   wsServer.RemoteHost = wsClient.LocalIP
   wsServer.RemotePort = 1007
   wsClient.Bind 1007
End Sub

Private Sub CmdSend_Click()
   ' Send a broadcast message from the server.
   wsServer.SendData "Hello"
End Sub

Private Sub axWinsockClient_DataArrival(ByVal bytesTotal As Long)
   Dim strServerMsg As String

   ' When a message arrives from the server, display it in a text
   ' box.
   wsClient.GetData strServerMsg, vbString
   Me!Text1.Value = strServerMsg
End Sub
					
6. Guarde y cierre el formulario UDPForm.
7. Abra UDPForm en vista Formulario y haga clic en el botón Send Data.

Observe que el cuadro de texto muestra "Hello" Porque esto es una transmisión sin conexión, no tiene que establecer una conexión cliente-servidor.

Volver al principio


La información de este artículo se refiere a:
Microsoft Access 2000 Standard Edition

Volver al principio

Palabras clave: 
kbhowto kbinfo kbusage KB209905 KbMtes kbmt

Volver al principio

 

Buscar en

 
Búsqueda Avanzada

Seleccione idioma

 

Más soporte técnico

Herramientas


©2007 Microsoft Corporation. Todos los derechos reservados. Aviso legal |Marcas registradas |Privacidad